package com.shujia.spark.core

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD

object Demo04FlatMap {
  def main(args: Array[String]): Unit = {
    /**
     * flatMap：转换算子
     * 同样需要接收一个函数f：同RDD中每条数据的类型一致 => 返回值类型要求是数据容器（集合、数组）
     * 将函数f作用在每一条数据上，并且会将最后的返回的数据容器进行展开（扁平化处理）
     *
     * 一般适用于需要将一行数据变成多行数据的场景
     */

    val conf: SparkConf = new SparkConf()
    conf.setMaster("local")
    conf.setAppName("Demo04FlatMap")
    val sc: SparkContext = new SparkContext(conf)

    val lineRDD: RDD[String] = sc.textFile("spark/data/words/words.txt")

    val wordsRDD: RDD[String] = lineRDD.flatMap(_.split(","))


    wordsRDD.foreach(println)
  }

}
